home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / lister.atr < prev    next >
Text File  |  1995-04-22  |  4KB  |  81 lines

  1. 10 REM PROGRAM LISTER 
  2. 20 REM BY DANA NOONAN 
  3. 30 REM COPYRIGHT 1982 
  4. 40 REM SET-UP PROGRAM 
  5. 50 DIM A$(500),F$(15),B$(20),R$(4),L$(12),Y$(1),D$(20),S$(30) 
  6. 60 B$="            ":R$="REM " 
  7. 70 OPEN #2,4,0,"K:":GOSUB 650 
  8. 80 CLOSE #2:PK=PEEK(559):POKE 559,0 
  9. 90 TRAP 720:OPEN #1,4,0,F$:OPEN #4,8,0,"P:":INPUT #1;A$ 
  10. 100 ? #4;CHR$(T);B$;F$;B$(7);"PAGE ";PG;B$(7);D$:? #4:? #4 
  11. 110 ? #4;B$;"| | = Inverse";B$(7);"[ ] = Control";B$(7);"< > = Control Inverse":? #4:L=5:PG=PG+1:GOTO 140 
  12. 120 REM GET DATA 
  13. 130 TRAP 720:INPUT #1,A$ 
  14. 140 C=LEN(A$):RF=0:QF=0:S=0:LL=65*(T=18)+120*(T=15) 
  15. 150 REM CHECK REMS, QUOTES, AND LINE NUMBERS 
  16. 160 FOR I=1 TO C:A=ASC(A$(I,I)) 
  17. 170 IF A=34 OR A>159 THEN QF=1:GOTO 190 
  18. 180 NEXT I 
  19. 190 FOR N=2 TO 6:IF ASC(A$(N))<>32 THEN NEXT N 
  20. 200 TRAP 210:IF A$(N+1,N+4)<>R$ THEN RF=1:TRAP 40000 
  21. 210 IF RF=0 THEN ? #4:L=L+1 
  22. 220 S=6-N:? #4;B$(12-S);CHR$(158);A$(1,N);" ";:N=N+1 
  23. 230 IF QF=0 AND C<LL THEN ? #4;A$(N):GOTO 590 
  24. 240 REM CHECK ASC VALUE 
  25. 250 II=N:FOR I=N TO C:A=ASC(A$(I,I)):II=II+1 
  26. 295 IF II>(LL+7) THEN ? #4;CHR$(155);B$(5);:L=L+1:LL=LL+65*(T=18)+120*(T=15) 
  27. 300 IF A>31 AND A<125 THEN 560 
  28. 310 IF A>159 AND A<254 THEN 490 
  29. 320 IF A>127 AND A<155 THEN 430 
  30. 330 IF A<27 THEN 460 
  31. 340 RESTORE  
  32. 350 READ D,DL,L$ 
  33. 360 IF D<>A THEN GOTO 350 
  34. 365 IF (II+DL)>(LL+7) THEN ? #4;CHR$(155);B$(5);:L=L+1:LL=LL+65*(T=18)+120*(T=15) 
  35. 370 ? #4;"[";L$;"]";:II=II+DL:NEXT I 
  36. 380 DATA 27,8,ESCAPE,28,4,UP,29,6,DOWN,30,6,LEFT,31,7,RIGHT 
  37. 390 DATA 125,7,CLEAR,126,10,BACK SPACE,127,5,TAB 
  38. 400 DATA 156,13,DELETE LINE,157,13,INSERT LINE,158,11,CLEAR TAB,159,9,SET TAB 
  39. 410 DATA 253,6,BELL,254,8,DELETE,255,8,INSERT 
  40. 420 REM INVERSE CONTROL CHARACTERS 
  41. 430 IF A=128 THEN ? #4;"<,>";:II=II+3:NEXT I 
  42. 440 A=A-64:? #4;"<";CHR$(A);">";:II=II+2:NEXT I 
  43. 450 REM CONTROL CHARACTERS 
  44. 460 IF A=0 THEN ? #4;"[,]";:II=II+3:NEXT I 
  45. 470 A=A+64:? #4;"[";CHR$(A);"]";:II=II+2:NEXT I 
  46. 480 REM INVERSE NORMAL CHARACTERS 
  47. 490 IF A=253 THEN ? #4;"<;>";:II=II+3:NEXT I 
  48. 500 A=A-128:? #4;"|";CHR$(A);:II=II+2 
  49. 510 TRAP 540:I=I+1:II=II+1:A=ASC(A$(I,I)):IF II>(LL+7) THEN ? #4;CHR$(155);B$(5);:L=L+1:LL=LL+65*(T=18)+120*(T=15) 
  50. 520 IF A>159 AND A<253 THEN A=A-128:? #4;CHR$(A);:GOTO 510 
  51. 530 ? #4;"|";:II=II+1:GOTO 295 
  52. 540 TRAP 830:? #4;"|";:? #4:L=L+1:GOTO 590 
  53. 550 REM PRINT LINE AND GET NEXT ONE 
  54. 560 IF A=96 THEN ? #4;"[.]";:II=II+2:NEXT I 
  55. 570 IF A=123 THEN ? #4;"[;]";:II=II+2:NEXT I 
  56. 580 ? #4;CHR$(A);:NEXT I:? #4 
  57. 590 L=L+1:IF L<60 THEN GOTO 130 
  58. 600 FOR NN=1 TO 6-(L-60):? #4:NEXT NN 
  59. 610 ? #4;B$;F$;B$(7);"PAGE ";PG:? #4:? #4:PG=PG+1:L=3:GOTO 130 
  60. 620 REM END 
  61. 630 ? #4:POKE 559,PK:GRAPHICS 0:POSITION 12,8:? "COPY COMPLETE":CLOSE #1:CLOSE #4:CLR :END  
  62. 650 GRAPHICS 0:? :? "       PROGRAM LISTER" 
  63. 660 ? :? :? "    ENTER FILE NAME:";:INPUT F$ 
  64. 665 IF F$(2,2)<>":" OR F$(3,3)<>":" THEN D$(20)=" ":D$(2)=D$ 
  65. 670 ? :? "   DATE";:INPUT D$ 
  66. 680 ? :? "   SOURCE";:INPUT S$ 
  67. 690 ? :? "   CONDENSED PRINT (Y OR N)";:INPUT Y$:IF Y$<>"Y" AND Y$<>"N" THEN GOTO 690 
  68. 700 IF Y$="Y" THEN T=15:LL=120:PG=1:RETURN  
  69. 710 IF Y$="N" THEN T=18:LL=65:PG=1:RETURN  
  70. 720 REM ERROR TRAPPING 
  71. 730 IF PEEK(195)=136 THEN 620 
  72. 740 TRAP 830:CLOSE #1:CLOSE #4:POKE 559,PK:OPEN #2,4,0,"K:" 
  73. 750 IF PEEK(195)=170 THEN 790 
  74. 760 IF PEEK(195)=138 THEN 810 
  75. 770 ? CHR$(125):POSITION 7,10:? "CANNOT PRINT THIS LISTING" 
  76. 780 POSITION 7,12:? "PRESS RETURN TO TRY AGAIN":GET #2,Q:CLR :RUN  
  77. 790 IF PEEK(195)=170 THEN ? CHR$(125):POSITION 10,10:? "NO FILE BY THAT NAME" 
  78. 800 POSITION 7,12:? "PRESS RETURN TO TRY AGAIN":GET #2,Q:CLR :RUN  
  79. 810 ? CHR$(125):POSITION 5,10:? "CHECK PRINTER AND PRESS RETURN":GET #2,Q:GOTO 80 
  80. 820 ? #4;">";:LN=LN-1:GOTO 300 
  81.